/**
 * Created by Administrator on 2019/5/17/017.
 */
class SMAP_ListNode {
    constructor(id, data) {
        this._id = (typeof id === "number") ? id : null
        this._data = data || null
        this.next = null
        this.prev = null
    }

    // 返回该节点的id值或设置id值
    id (id) {
        if (id !== null && id !== undefined) {
            if (typeof id === "number") {
                this._id = id
            } else {
                throw new Error("Id must be an integer.")
            }
        } else {
            return this._id
        }
    }

    // 返回该节点的数据或设置数据
    data (data) {
        if (data !== null && data !== undefined) {
            this._data = data
        } else {
            return this._data
        }
    }

    // 检测该节点的下一个节点是否是有效数据（返回true/false）
    hasNext () {
        if (this.next !== null) {
            return this.next.id() !== null
        }

        return false
    }

    // 检测该节点的上一个节点是否是有效数据（返回true/false）
    hasPrev () {
        if (this.prev !== null) {
            return this.prev.id() !== null
        }

        return false
    }
}
export default SMAP_ListNode
